package com.ld.hpfs.dao;

import java.util.ArrayList;
import java.util.HashMap;

import org.springframework.stereotype.Repository;

/**
 * 用于与HistoryMapper.xml关联，维护下列数据的履历表：
 * 客户主数据
 * 客户联系方式
 * 商品主数据
 * 销方银行账户
 * 公司设置数据
 * 
 * @author songyunyi
 *
 */
@Repository
public interface HistoryMapper {
	
	public ArrayList<HashMap<String, Object>> getMdataClientInfo(HashMap<String, Object> params);
	
	public void addMdataClientHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getMdataClientContactInfo(HashMap<String, Object> params);
	
	public void addMdataClientContactHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getMdataGoodsInfo(HashMap<String, Object> params);
	
	public void addMdataGoodsHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getMdataBankAccountInfo(HashMap<String, Object> params);
	
	public void addMdataBankAccountHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getCompanyInfo(int id);
	
	public void addCompanyHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getTicketInfo(HashMap<String, Object> params);
	
	public void addTicketHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInputDbSourceInfo(HashMap<String, Object> params);
	
	public void addInputDbSourceHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getOutputDbSourceInfo(HashMap<String, Object> params);
	
	public void addOutputDbSourceHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getUserInfo(HashMap<String, Object> params);
	
	public void addUserHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getUserRoleInfo(HashMap<String, Object> params);
	
	public void addUserRoleHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getUserPermissionInfo(HashMap<String, Object> params);
	
	public void addUserPermissionHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInvoiceHeadMainInfo(HashMap<String, Object> params);
	
	public void addInvoiceHeadMainHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInvoiceHeadExpInfo(HashMap<String, Object> params);
	
	public void addInvoiceHeadExpHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInvoiceHeadTransInfo(HashMap<String, Object> params);
	
	public void addInvoiceHeadTransHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInvoiceDetailInfo(HashMap<String, Object> params);
	
	public void addInvoiceDetailHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInvoiceDetailTransInfo(HashMap<String, Object> params);
	
	public void addInvoiceDetailTransHistory(HashMap<String, Object> params);
	
	public int addInvoiceHistory(HashMap<String, Object> params);
	
	public HashMap<String, Object> getDocNoInfo(int headId);
	
	public ArrayList<HashMap<String, Object>> getSplitInfo(int headId);
	
	public ArrayList<HashMap<String, Object>> getMergeIds(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getMergeInfo(int headId);
	
	public ArrayList<HashMap<String, Object>> getHistoryByHeadId(HashMap<String,Object> param);
	
	public void deleteHistoryByHistId(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInvoiceMainHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getInvoiceDetailHistory(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getParentsByHeadId(String document_no);
	
	public ArrayList<HashMap<String, Object>> getHistoryByDocNo(HashMap<String, Object> params);
	
	public ArrayList<HashMap<String, Object>> getChildrenByHeadId(int headId);

	public int getMaxHistId();
}
